equals?Thread,每個thread的行為表現都是唯一的,無法單純地用equals去判斷兩個物件一不一樣,thread只能跟自己一樣,所以不適合覆寫。equals去驗證兩個物件的值相不相同: 一般來說,我們不會刻意去驗證java.util.Random產生出來的值一不一樣,所以沒必要去覆寫。equals且也符合子類別的需求。equals。覆寫equals雖然很簡單,但會引發一些錯誤,非必要還是不要使用,真的需要覆寫equals的情境,大部分會是需要確認物件裡面的某個值是不是相同,才需要覆寫。舉例來說,像是Integer或Date,因為需要比較數字相不相同和時間一不一樣的需求,就很適合覆寫equals。
equals時,必須也覆寫hashCode。兩個物件相等,基本上hash code也要一樣,不然在使用HashMap等跟hash有關的collection時,會出現令人困惑的情況,同一個HashMap的兩個key,居然是相等的。equals裡面的判斷邏輯太過複雜。equals的參數型別Object修改成其他型別,因為這個不是override而是overloads。public boolean equals(Point obj) {
  .....
}
equals時加上@Override這個annotation,可以避免上一個問題。今天寫的大部分都是一些注意事項,明天再來說明,要覆寫equals時,有哪些規則需要遵守。